//
//  YYRunLoopService.h
//  YYRunLoop
//
//  Created by SMCB on 2017/11/1.
//  Copyright © 2017年 SMCB. All rights reserved.
//

#import <Foundation/Foundation.h>

typedef NS_ENUM(NSUInteger, YYRunLoopServiceError) {
    YYRunLoopServiceSetNotEixtError =           -1001,
    YYRunLoopServiceObjNILError =              -1002,
};

NS_ASSUME_NONNULL_BEGIN

@interface YYRunLoopService : NSObject

/**
 提供单例服务(常驻服务)

 @return 返回当前对象单例
 */
+ (instancetype)provideService;

/**
 注销单例服务
 */
+ (void)revokeService;

@end

@interface YYRunLoopService (Set)
/**
 添加的对象obj将被单例服务持有
 
 @param obj 任意OC对象
 */
- (void)addObject:(id)obj;

/**
 移除单例服务中持有的对象
 
 @param obj 任意OC对象
 @param error 发生错误的返回
 */
- (void)removeObject:(id)obj error:(NSError * __autoreleasing _Nullable *)error;

@end

NS_ASSUME_NONNULL_END
